package com.example.baselibrary.utlis
import android.os.SystemClock
import android.view.View

/**
 * 防重复点击的点击事件封装
 * @param interval 点击最小间隔时间（毫秒），默认500ms
 * @param onSingleClick 实际的点击处理回调
 */
class SingleClickListener(
    private val interval: Long = 500,
    private val onSingleClick: (View) -> Unit
) : View.OnClickListener {
    // 上一次有效点击的时间戳
    private var lastClickTime: Long = 0

    override fun onClick(v: View) {
        val currentTime = SystemClock.elapsedRealtime()

        // 检查是否为有效点击（超过间隔时间）
        if (currentTime - lastClickTime >= interval) {
            lastClickTime = currentTime
            onSingleClick(v)
        }
    }
}

// 扩展函数，简化使用
fun View.setOnSingleClickListener(interval: Long = 500, onClick: (View) -> Unit) {
    setOnClickListener(SingleClickListener(interval, onClick))
}

